if ( VM_ASSIST(d, VMASST_TYPE_writable_pagetables) &&
guest_kernel_mode(v, regs) &&
- ((regs->error_code & (PGERR_write_access|PGERR_page_present)) ==
- (PGERR_write_access|PGERR_page_present)) &&
+ /* Do not check if access-protection fault since the page may
+ legitimately be not present in shadow page tables */
+ ((regs->error_code & PGERR_write_access) == PGERR_write_access) &&
ptwr_do_page_fault(d, addr, regs) )
return EXCRET_fault_fixed;